// https://leetcode.cn/problems/find-the-town-judge/
// Created by ade on 2022/8/23.
// 如果小镇法官真的存在，那么：
//
// 小镇法官不会信任任何人。
// 每个人（除了小镇法官）都信任这位小镇法官。
// 只有一个人同时满足属性 1 和属性 2 。
#include <iostream>
#include <vector>


using namespace std;

class Solution {
public:
    int findJudge(int n, vector <vector<int>> &trust) {
        int persons[n];
        int trust_count[n];
        memset(persons, 0, sizeof(persons));
        memset(trust_count, 0, sizeof(trust_count));
        for (auto i : trust) {
            persons[i[0] - 1] = 1;
            trust_count[i[1] - 1]++;
        }
        for (int i = 0; i < n; i++) {
            if (persons[i] == 0 && trust_count[i] == n - 1) {
                return i + 1;
            }
        }
        return -1;
    }
};